package com.jvm.classloader;

/**
 * 主动使用其中一种：创建类的实例会导致初始化。
 * 数组类型是java虚拟机在运行期动态生成出来的，标识为[Lcom.jvm.classloader.Parent4，
 * 其动态的父类型就是Object。
 * 对于数组来说，JavaDoc经常将构成数组的元素为Component，实际上就是将数组降低一个维度后的类型
 *
 *
 * 助记符：
 *     anewarray：表示一个引用类型的（如类、接口、数组）数组，并将其引用值压入栈顶。
 *     newarray：表示创建一个指定的原始类型（如int、float、char等）的数组，并将其引用值压入栈顶。
 */
public class MyTest4 {
    public static void main(String[] args) {
        //Parent4 parent4 = new Parent4();

        Parent4[] parent4s = new Parent4[1];
        System.out.println(parent4s.getClass());

        Parent4[][] parent4s1 = new Parent4[1][1];
        System.out.println(parent4s1.getClass());

        System.out.println(parent4s.getClass().getSuperclass());
        System.out.println(parent4s1.getClass().getSuperclass());

        System.out.println("=========");

        int[] is = new int[1];

        System.out.println(is.getClass());
        System.out.println(is.getClass().getSuperclass());

        char[] chars = new char[1];

        System.out.println(chars.getClass());

        boolean[] booleans = new boolean[1];

        System.out.println(booleans.getClass());

        short[] shorts = new short[1];

        System.out.println(shorts.getClass());

        byte[] bytes = new byte[1];

        System.out.println(bytes.getClass());
    }
}

class Parent4{
    static {
        System.out.println("parent4 static code");
    }
}
